package com.xique.park.service.service;

import com.xique.park.bean.domain.ParkGarageCarSpace;

import java.util.List;
import java.util.Map;

/**
 * 车位Service接口
 *
 * @author xique
 * @date 2021-12-09
 */
public interface IParkGarageCarSpaceService {

    /**
     * 查询车位
     *
     * @param id 车位ID
     * @return 车位
     */
    ParkGarageCarSpace selectParkGarageCarSpaceById(Long id);

    /**
     * 查询车位列表
     *
     * @param parkGarageCarSpace 车位
     * @return 车位集合
     */
    List<ParkGarageCarSpace> selectParkGarageCarSpaceList(ParkGarageCarSpace parkGarageCarSpace);

    /**
     * 新增车位
     *
     * @param parkGarageCarSpace 车位
     * @return 结果
     */
    int insertParkGarageCarSpace(ParkGarageCarSpace parkGarageCarSpace);

    /**
     * 修改车位
     *
     * @param parkGarageCarSpace 车位
     * @return 结果
     */
    int updateParkGarageCarSpace(ParkGarageCarSpace parkGarageCarSpace);

    /**
     * 批量删除车位
     *
     * @param ids 需要删除的车位ID
     * @return 结果
     */
    int deleteParkGarageCarSpaceByIds(List<Long> ids);

    /**
     * 条件删除
     *
     * @param map /
     * @return /
     */
    int deleteByMap(Map<String, Object> map);

    /**
     * 批量新增
     *
     * @param list /
     * @return /
     */
    int batchInsert(List<ParkGarageCarSpace> list);

    /**
     * 批量更新
     *
     * @param list /
     * @return /
     */
    int batchUpdate(List<ParkGarageCarSpace> list);

    /**
     * 批量新增
     *
     * @param parkGarageCarSpaceList 待新增列表
     */
    void batchInsertList(List<ParkGarageCarSpace> parkGarageCarSpaceList);

    /**
     * 批量更新
     *
     * @param parkGarageCarSpaceList 待更新的列表
     */
    void batchUpdateListById(List<ParkGarageCarSpace> parkGarageCarSpaceList);

    /**
     * 根据车辆ID查询
     *
     * @param carId 车辆ID
     * @return 查询结果
     */
    List<ParkGarageCarSpace> selectParkGarageCarSpaceByCarId(Long carId);
}
